import axios from '../axios'

/*
 * 心理测评题目管理模块
 */

// 调试输出
console.log('psyQuestion模块已加载');

// 所有API方法
const psyQuestion = {
  // 保存
  save(data) {
    console.log('save方法被调用');
    return axios({
      url: '/psyQuestion/save',
      method: 'post',
      data
    })
  },

  // 删除
  batchDelete(data) {
    console.log('batchDelete方法被调用');
    return axios({
      url: '/psyQuestion/delete',
      method: 'post',
      data
    })
  },

  // 分页查询
  findPage(data) {
    console.log('findPage方法被调用，参数:', data);
    
    // 确保data参数至少包含基本结构
    const requestData = data || { pageNum: 1, pageSize: 10 };
    
    // 确保params存在,且至少有一个占位参数
    if (!requestData.params || !Array.isArray(requestData.params) || requestData.params.length === 0) {
      requestData.params = [{ name: '_placeholder', value: null }];
    }
    
    return axios({
      url: '/psyQuestion/findPage',
      method: 'post',
      data: requestData
    })
  },

  // 根据ID查询
  findById(id) {
    console.log('findById方法被调用，ID:', id);
    return axios({
      url: '/psyQuestion/findById',
      method: 'get',
      params: {
        id: id
      }
    })
  },

  // 根据学期查询题目列表
  findByTerm(termId) {
    console.log('findByTerm方法被调用，termId:', termId);
    return axios({
      url: '/psyQuestion/findByTermId',
      method: 'get',
      params: {
        termId: termId
      }
    })
  },

  // 导入题目
  importQuestions(data) {
    console.log('importQuestions方法被调用');
    return axios({
      url: '/psyQuestion/importQuestions',
      method: 'post',
      headers: {
        'Content-Type': 'multipart/form-data'
      },
      data
    })
  }
}

// 导出API对象
export default psyQuestion

// 为了向下兼容，同时导出各个方法
export const save = psyQuestion.save
export const batchDelete = psyQuestion.batchDelete
export const findPage = psyQuestion.findPage
export const findById = psyQuestion.findById
export const findByTerm = psyQuestion.findByTerm
export const importQuestions = psyQuestion.importQuestions

// 测试函数
export function testFindPage() {
    console.log('测试findPage函数可用性');
    return '测试成功';
} 